Many distributed systems employ a publish-subscribe data exchange in which applications publish data samples, which become available to remote applications interested in them.
The Object Management Group (OMG) Real-Time Publish-Subscribe Protocol (RTPS) specification has become one of the popular protocols for publish-subscribe communications. Moreover RTPS is the interoperability wire protocol for systems that implement the OMG Data Distribution Service (DDS) a specification of a publish-subscribe middleware created in response to the need to standardize a data-centric publish-subscribe programming model for distributed systems.
The RTPS protocol provides a way to send data-samples from a Writer to a Reader reliably where each sample is identified by a writer global source identifier (GUID) and a sequence number. Even if the underlying protocol is not reliable, such as UDP (User Datagram Protocol), the messages will be delivered to the Reader in order and missing samples can be resent.
To do that, the RTPS protocol defines three protocol messages:                HEARTBEAT: Describes the information (samples) that is available in a Writer. HEARTBEAT messages are sent by a Writer to one or more Readers.        DATA: This message encapsulates a sample containing the application's user data, sequence number and other relevant information.        ACKNACK: Allows the Reader to inform the Writer about the samples it has received and which ones it is still missing. This message can be used to do both positive and negative acknowledgments. ACKNACK messages are sent in response to HEARTBEATs.        
FIG. 1 shows a basic message exchange between a Writer and a Reader. In this exchange one of the samples is lost and subsequently repaired when the Writer receives a NACK.
Although the RTPS protocol describes the basic behavior of Writers and Readers to guarantee interoperability, it does not provide guidelines on how to optimize the sending of DATA, HEARTBEAT, and ACKNACK messages to obtain best performance and resource utilization and adapt to changing network conditions. This is especially critical in dynamic systems where the resources available for a Writer/Reader pair such as bandwidth, CPU, and memory change over time.
For example, a Writer and a Reader could be exchanging DATA messages without losses in a 1 Gb network. The appearance of a new pair Writer/Reader with which they have to share bandwidth may start introducing sample losses. The additional traffic generated by repair DATA messages reduces the available bandwidth, increases the samples' latency, and reduces the throughput for new samples sent from the Writer to the Reader. The network conditions may also change as the data may traverse over shared networks with varying loads, and/or over wireless or radio links whose physical properties may change over time.
To further advance the art, the present invention provides a system and/or method to adaptively auto-tune reliable communications in an RTPS system to provide a good throughput/latency tradeoff as well as efficient bandwidth utilization.